﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using com.nm.Attributes;

namespace PlanAPI.model
{
    public class PriceComparisonModel
    {
        #region PLItemSkcForPC实体(对应数据库的所有字段)
        /// <summary>
        /// PLItemSkcForPC实体(对应数据库的所有字段)
        /// </summary>
        public class Entity
        {

            [ParamDescription("公司代码")]
            public string CompanyID { get; set; }

            [ParamDescription("年份")]
            public int Yearv { get; set; }

            [ParamDescription("月份")]
            public int Monthv { get; set; }

            [ParamDescription("周")]
            public int Weekv { get; set; }


            [ParamDescription("商品分区")]
            public string ParentAreaID { get; set; }

            [ParamDescription("店铺")]
            public string ShopID { get; set; }

            [ParamDescription("价格/颜色标识")]
            public int PriceOrColor { get; set; }


            [ParamDescription("类别")]
            public string KindID { get; set; }

            [ParamDescription("系列")]
            public string SeriesID { get; set; }

            [ParamDescription("商品层")]
            public string MaterialProperty { get; set; }

            [ParamDescription("品类")]
            public string ModelID { get; set; }

            [ParamDescription("小品类")]
            public string ItemID { get; set; }

            [ParamDescription("深度")]
            public int DeepQty { get; set; }

            [ParamDescription("确认SKC数")]
            public int CkSKCQty { get; set; }

            [ParamDescription("前N周合计数")]
            public int TotalQty { get; set; }

            [ParamDescription("价格带/颜色")]
            public string PriceColorName { get; set; }

            [ParamDescription("价格带占比")]
            public decimal CkPtStandAmountRate { get; set; }

            [ParamDescription("计算SKC数（两位小数）")]
            public decimal CalcQty { get; set; }

            [ParamDescription("四舍五入结果(整数)")]
            public int RoundQty { get; set; }

            [ParamDescription("差额")]
            public decimal DiffValue { get; set; }

            [ParamDescription("增加或扣减")]
            public int AddQty { get; set; }

            [ParamDescription("SKC数")]
            public int PriceColorSKCQty { get; set; }

            [ParamDescription("备注")]
            public string Remark { get; set; }

            [ParamDescription("审核状态")]
            public int CheckState { get; set; }

            [ParamDescription("审核人")]
            public string Checker { get; set; }

            [ParamDescription("修改时间")]
            public DateTime MofifyDTM { get; set; }

            [ParamDescription("新增记录标记")]
            public int AddFlag { get; set; }

            [ParamDescription("抽数时间")]
            public DateTime LoadTime { get; set; }

            [ParamDescription("修改时间")]
            public DateTime EtlDate { get; set; }
        }
        #endregion


        #region 左边店铺

        public class Shop
        {
            #region ShopListModel

            public class ShopListModel
            {
                [ParamDescription("店铺ID")]
                public string ShopID { get; set; }

                [ParamDescription("店铺名称")]
                public string ShopName { get; set; }

                [ParamDescription("预算金额")]
                public decimal YuSuanPrice { get; set; }

                [ParamDescription("企划金额")]
                public decimal QiHuaPrice { get; set; }

                [ParamDescription("差额")]
                public decimal DiffValue { get; set; }

                [ParamDescription("商品区域")]
                public string ParentAreaID { get; set; }

            }

            #endregion

            #region ShopListUpdateModel

            public class ShopListUpdateModel
            {
                [ParamDescription("店铺ID")]
                public string ShopID { get; set; }

                [ParamDescription("企划金额")]
                public decimal QiHuaPrice { get; set; }
            }

            #endregion
        }



        #endregion


        #region 右边详细

        public class Detail
        {
            #region ListModel
            public class ListModel
            {
                //[ParamDescription("公司代码")]
                //public string CompanyID { get; set; }

                [ParamDescription("年份")]
                public int Yearv { get; set; }

                [ParamDescription("月份")]
                public int Monthv { get; set; }

                [ParamDescription("周")]
                public int Weekv { get; set; }


                //[ParamDescription("商品分区")]
                //public string ParentAreaID { get; set; }

                [ParamDescription("店铺")]
                public string ShopID { get; set; }

                [ParamDescription("价格/颜色标识")]
                public int PriceOrColor { get; set; }


                [ParamDescription("类别")]
                public string KindID { get; set; }

                [ParamDescription("系列")]
                public string SeriesID { get; set; }

                [ParamDescription("商品层")]
                public string MaterialProperty { get; set; }

                [ParamDescription("品类")]
                public string ModelID { get; set; }

                [ParamDescription("小品类")]
                public string ItemID { get; set; }

                [ParamDescription("深度")]
                public int DeepQty { get; set; }

                [ParamDescription("确认SKC数")]
                public int CkSKCQty { get; set; }

                [ParamDescription("前N周合计数")]
                public int TotalQty { get; set; }

                [ParamDescription("价格带/颜色")]
                public string PriceColorName { get; set; }

                //[ParamDescription("价格带占比")]
                //public decimal CkPtStandAmountRate { get; set; }

                [ParamDescription("计算SKC数（两位小数）")]
                public decimal CalcQty { get; set; }

                //[ParamDescription("四舍五入结果(整数)")]
                //public int RoundQty { get; set; }

                //[ParamDescription("差额")]
                //public decimal DiffValue { get; set; }

                //[ParamDescription("增加或扣减")]
                //public int AddQty { get; set; }

                [ParamDescription("SKC数")]
                public int PriceColorSKCQty { get; set; }

                //[ParamDescription("备注")]
                //public string Remark { get; set; }

                //[ParamDescription("审核状态")]
                //public int CheckState { get; set; }

                //[ParamDescription("审核人")]
                //public string Checker { get; set; }

                //[ParamDescription("修改时间")]
                //public DateTime MofifyDTM { get; set; }

                //[ParamDescription("新增记录标记")]
                //public int AddFlag { get; set; }

                //[ParamDescription("抽数时间")]
                //public DateTime LoadTime { get; set; }

                //[ParamDescription("修改时间")]
                //public DateTime EtlDate { get; set; }



                #region 新增

                [ParamDescription("店铺名称")]
                public string ShopName { get; set; }

                [ParamDescription("类型")]
                public string KindName { get; set; }

                [ParamDescription("系列")]
                public string SeriesName { get; set; }

                [ParamDescription("品类")]
                public string ModelName { get; set; }

                [ParamDescription("小品类")]
                public string ItemName { get; set; }

                [ParamDescription("类别占比（%）")]
                public decimal BudgetAmount { get; set; }

                [ParamDescription("预算金额")]
                public decimal ShopKindRate_CkPtStandAmountRate { get; set; }

                [ParamDescription("价格带")]
                public decimal PriceValue { get; set; }

                #endregion


                [ParamDescription("全国/区域款")]
                public int DataFlag { get; set; }
            }

            #endregion

            #region UpdateModelList
            public class UpdateModelList
            {
                public IList<UpdateModel> List { get; set; }
            }
            #endregion

            #region UpdateModel
            public class UpdateModel
            {
                //[ParamDescription("公司代码")]
                //public string CompanyID { get; set; }

                //[ParamDescription("年份")]
                //public int Yearv { get; set; }

                //[ParamDescription("月份")]
                //public int Monthv { get; set; }

                [ParamDescription("周")]
                public int Weekv { get; set; }


                [ParamDescription("商品分区")]
                public string ParentAreaID { get; set; }

                [ParamDescription("店铺")]
                public string ShopID { get; set; }

                [ParamDescription("价格/颜色标识")]
                public int PriceOrColor { get; set; }


                [ParamDescription("类别")]
                public string KindID { get; set; }

                [ParamDescription("系列")]
                public string SeriesID { get; set; }

                [ParamDescription("商品层")]
                public string MaterialProperty { get; set; }

                [ParamDescription("品类")]
                public string ModelID { get; set; }

                [ParamDescription("小品类")]
                public string ItemID { get; set; }

                [ParamDescription("深度")]
                public int DeepQty { get; set; }

                [ParamDescription("确认SKC数")]
                public int CkSKCQty { get; set; }

                [ParamDescription("前N周合计数")]
                public int TotalQty { get; set; }

                [ParamDescription("价格带/颜色")]
                public string PriceColorName { get; set; }

                [ParamDescription("价格带占比")]
                public decimal CkPtStandAmountRate { get; set; }

                [ParamDescription("计算SKC数（两位小数）")]
                public decimal CalcQty { get; set; }

                [ParamDescription("四舍五入结果(整数)")]
                public int RoundQty { get; set; }

                [ParamDescription("差额")]
                public decimal DiffValue { get; set; }

                [ParamDescription("增加或扣减")]
                public int AddQty { get; set; }

                [ParamDescription("SKC数")]
                public int PriceColorSKCQty { get; set; }

                //[ParamDescription("备注")]
                //public string Remark { get; set; }

                //[ParamDescription("审核状态")]
                //public int CheckState { get; set; }

                //[ParamDescription("审核人")]
                //public string Checker { get; set; }

                //[ParamDescription("修改时间")]
                //public DateTime MofifyDTM { get; set; }

                //[ParamDescription("新增记录标记")]
                //public int AddFlag { get; set; }

                //[ParamDescription("抽数时间")]
                //public DateTime LoadTime { get; set; }

                //[ParamDescription("修改时间")]
                //public DateTime EtlDate { get; set; }


                [ParamDescription("全国/区域款")]
                public int DataFlag { get; set; }
            }
            #endregion

            #region ListModelInfo
            public class ListModelInfo
            {
                public ListModelInfo()
                {
                    List = new List<WeekGroup>();
                }

                /// <summary>
                /// 年
                /// </summary>
                public int Yearv { get; set; }

                /// <summary>
                /// 月
                /// </summary>
                public int Monthv { get; set; }

                /// <summary>
                /// 商品区域
                /// </summary>
                public string ParentAreaID { get; set; }

                /// <summary>
                /// 类型
                /// </summary>
                public string KindID { get; set; }

                /// <summary>
                /// 系列
                /// </summary>
                public string SeriesID { get; set; }

                [ParamDescription("商品层")]
                public string MaterialProperty { get; set; }

                /// <summary>
                /// 品类
                /// </summary>
                public string ModelID { get; set; }

                /// <summary>
                /// 数据集
                /// </summary>
                public List<WeekGroup> List { get; set; }


                public decimal PriceMonthSum { get; set; }
                public string ItemID { get; set; }

                public decimal DeepQty { get; set; }

                public string ShopID { get;  set; }

                public int DataFlag { get; set; }
            }
            #endregion

            #region WeekGroup
            public class WeekGroup
            {
                public WeekGroup()
                {
                    WeekList = new List<ListModel>();
                }

                public WeekGroup(int week)
                {
                    WeekList = new List<ListModel>();
                    Weekv = week;
                }

                public int Weekv { get; set; }
                /// <summary>
                /// 数据集
                /// </summary>

                public List<ListModel> WeekList { get; set; }

                public decimal PriceWeekSum { get; set; }
            }
            #endregion

        }


        #endregion

        #region GroupModel
        public class GroupModel
        {
            [ParamDescription("公司代码")]
            public string CompanyID { get; set; }

            [ParamDescription("年份")]
            public int Yearv { get; set; }


            [ParamDescription("月份")]
            public int Monthv { get; set; }


            [ParamDescription("商品分区")]
            public string ParentAreaID { get; set; }


            [ParamDescription("类别ID")]
            public string KindID { get; set; }


            [ParamDescription("系列ID")]
            public string SeriesID { get; set; }


            //[ParamDescription("星期")]
            //public int Weekv { get; set; }


            [ParamDescription("店铺ID")]
            public string ShopID { get; set; }

            [ParamDescription("品类")]
            public string ModelID { get; set; }

            [ParamDescription("商品层")]
            public string MaterialProperty { get; set; }

            [ParamDescription("价格/颜色标识")]
            public int PriceOrColor { get; set; }
        }
        #endregion

        #region ChartModel

        public class ChartModel
        {

            [ParamDescription("企划金额")]
            public decimal QiHuaPrice { get; set; }

            [ParamDescription("商品区域")]
            public string ParentAreaID { get; set; }
        }

        #endregion


    }
}
